package com.bw.doctor.mapper;

import com.bw.doctor.domain.DoctorMiddleRestoratives;
import com.bw.doctor.domain.Prescription;
import com.bw.doctor.domain.PrescriptionMiddleRestoratives;
import com.bw.doctor.domain.Restoratives;
import com.bw.doctor.domain.res.PrescriptionRes;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author：尚志豪
 * @Package：com.bw.doctor.mapper
 * @Project：doudi-group2-shixun-02
 * @name：PharmacyMapper
 * @Date：2025/2/25 11:50
 */

public interface PharmacyMapper
{
    /**
     * B端 我的药房 常用药列表
     */
    List<Restoratives> listOfCommonDrugs(@Param("restorativesIds") List<Long> restorativesIds);

    /**
     * B端 我的药房 常用药添加
     */
    void additionOfCommonDrugs(@Param("restorativesId") Long restorativesId, @Param("doctorId") Long doctorId);
    /**
     * B端 我的药房 常用药详情
     */
    Restoratives detailsOfCommonDrugs(@Param("restorativesId") Long restorativesId);
    /**
     *  B端 我的药房 常用处方列表
     */
    List<Prescription> listOfCommonPrescriptions(Long doctorId);

    /**
     * 添加病症名称
     * @param prescription
     */
    void additiveDiseaseName(Prescription prescription);

    /**
     * 添加常用处方中间表
     */
    void addCommonPrescriptionIntermediateTable(@Param("prescriptionId") long prescriptionId, @Param("ids") List<Long> ids, @Param("doctorId") Long doctorId);

    /**
     * 通过处方id删除中间表
     */
    void deleteTheIntermediateTableByPrescriptionId(@Param("prescriptionId") Long prescriptionId);

    /**
     * 删除处方
     */
    void deletionOfPrescription(@Param("prescriptionId") Long prescriptionId);
    /**
     * B端 我的药房 常用处方病症详情
     */
    Prescription commonPrescriptionDetails(@Param("prescriptionId") Long prescriptionId);
    /**
     * 通过药品id查询
     */
    List<Restoratives> searchByDrugId(@Param("longs") List<Long> longs);

    /**
     * 通过病症id查询中间表的药品id
     */
    List<PrescriptionMiddleRestoratives> theDrugIdInTheMiddleTableIsQueriedByTheDiseaseId(@Param("prescriptionId") Long prescriptionId);

    /**
     * 通过医生id查询中间表
     */
    List<DoctorMiddleRestoratives> queryTheIntermediateTableByDoctorId(@Param("doctorId") Long doctorId);

    /**
     * B端 我的药房 常用药删除
     * @param restorativesId
     */
    void deletionOfCommonDrugs(@Param("restorativesId") Long restorativesId, @Param("doctorId") Long doctorId);
}
